1. Field of the Invention
This invention relates to modems, and in particular to systems and methods for detecting call-waiting tones during modem connection.
2. Description of the Related Art
Modems are communications devices which employ digital modulation techniques to transmit binary data over analog communications channels, e.g., telephone lines. Typically, two modems communicate over a single channel, with one modem at each end of the-channel. Signal processing structures implemented at each modem provide encoding, modulation, filtering, interpolation, echo cancellation, signal detection, equalization, demodulation, and decoding functions. Modems typically conform to international standards to ensure interoperability with modems from other manufacturers. One such standard is the V.34 specification described in ITU-T Recommendation V.34, A Modem Operating at Data Signalling Rates of up to 28 800 bits/s for Use on the General Switched Telephone Network and on Leased Point-to-Point 2-Wire Telephone-Type Circuits, dated September, 1994 (previously CCITT Recommendation V.34), which is hereby incorporated herein, in its entirety, by reference.
Traditional modem implementations include one or more dedicated digital signal processors (or DSPs) on which signal processing algorithms execute during periods of modem operation. A computer system may incorporate such a modem implementation, and in addition, typically includes application and operating system software executable on a general purpose processor. Software executing on the general purpose processor sends and receives data via the modem implementation using input/output (I/O) ports, direct memory access (DMA), or other I/O structures and methods suitable for a particular general purpose processor and operating system combination.
Since a typical modem implementation includes a dedicated DSP not shared with other signal processing functions of a larger computer system, the modem's DSP and the signal processing algorithms designed to run thereon are selected and designed to meet the peak computation load of the modem. DSP cycles are either used or lost For this reason, signal processing algorithms implementing the complete steady-state functionality of modem transmit and receive paths are typically executed on a DSP at full speed for the duration of a modem connection.
For many portable device applications such as Personal Digital Assistants (PDAs), portable computers, and cellular phones, power consumption, battery life, and overall mass are important design figures of merit. In addition, very small part counts are desirable for extremely-small, low-cost consumer devices. Modem communications are desirable in many such portable device applications. However, traditional DSP implementations of the underlying signal processing capabilities create substantial power demands, require increased part counts, and because of the power consumption of a discrete DSP, typically require larger heavier batteries.
A modem implemented as software executable on a general purpose computer may reduce part count, power demands, and overall size and mass of a computer system by eliminating the DSP, its power consumption, and some of the battery capacity otherwise required. Even non-portable device applications such as set top boxes (e.g., WebTV™ internet terminal devices or satellite/pay TV authorization devices), fax machines, etc. may benefit from the reduced part count, low cost, and reduced size and mass benefits of a software modem.
Many of these devices, whether or not portable, will be connected to the public switched telephone network on a single telephone line shared for voice communications. Such a configuration, which is typical in a residential service setting, may tie up the single phone line for extended periods of time during which the modem is communicating over the line. During such time, incoming callers may receive a busy signal.
A call waiting feature offered by many local exchange carriers alerts a person using a telephone for conventional voice communication that a third party is attempting to call the user while the user is still making a call. In such a system, the called party is notified and has the option to interrupt the ongoing call to take the waiting call. Typically, the local exchange carrier provides the call waiting feature by providing a call waiting tone of 440 Hz on the telephone line. The user typically hears the tone and may accept the waiting call by depressing, or “flashing” the switch hook.
Features such as the call waiting feature, while convenient, present problems when the initial call includes a modem data communications session. For example, when a modem is used, the call waiting signal is typically not recognized by the modem because the modem is not adapted to recognize the call waiting signal during data communications. As a result, “waiting calls” may go unanswered. This is particularly problematic in single-line residential settings where a phone subscriber may miss incoming calls when, for example, an internet terminal device is downloading data associated with a universal resource locator (URL) or a satellite/pay TV authorization device is using the phone line to transact a pay-per-view charge. Additionally, the call waiting signal can disrupt the modem communications session and cause its premature termination.
A prior art method of call waiting signal detection for a modem is disclosed in U.S. Pat. No. 4,852,151, issued Jul. 25, 1989, and entitled MODEM WITH CALL WAITING. The disclosed modem includes a data mode filter that is adapted to detect the presence of the carrier signal during the data transfer operation of the modem (i.e., the data mode), and a call progress management filter to detect incoming signals during the modem's call connection operation (i.e., the call progress mode.) The call waiting signal is typically not within the bandwidth of the data mode filter, but the call waiting signal is typically within the bandwidth of the call progress management filter. The method disclosed in the '151 patent switches the data mode filter to the call progress management filter once the data mode filter detects a loss of the carrier signal. If the call progress management filter then detects energy in its bandwidth, the call waiting signal has been detected.
Another prior art method of call waiting signal detection for a modem is disclosed in U.S. Pat. No. 5,287,401, issued Feb. 15, 1994, and entitled APPARATUS AND METHOD FOR A MODEM FOR DETECTING A CALL WAITING SIGNAL. The disclosed modem detects a cadence of carrier loss, carrier re-detect, carrier loss that is characteristic of local exchange carrier supply of call waiting tones. If the characteristic carrier loss/carrier detect cadence is detected, then the modem switches to its call progress management (CPM) filter. If the CPM filter then detects energy in its bandwidth, the call waiting signal has been detected.
Unfortunately, carrier loss can and does occur for reasons other than supply of call waiting tones. For example, carrier can be temporarily lost due to telephone line transmission problems. If the data mode filters are switched off because of a carrier loss or a cadence not generated by a call waiting tone, subsequent data in a returning carrier signal would not be detected. Furthermore, each of the above prior-art methods relies on energy detected in the CPM filter band and is not specific to the 440 Hz call waiting tone. Thus, noise in the CPM filter band may trigger an errant call waiting detection.
Another method of call waiting signal detection for a modem has been employed in at least some versions of WebTv™ set top boxes. The method, referred to as “LineShare” in WebTV™ documentation is to monitor the signal-to-noise-ratio (SNR) of a modem connection, and when the SNR drops significantly for a period of time, a call-waiting tone is assumed to have caused the reduced SNR. Unfortunately, many other conditions can cause reduced SNR, so call-waiting tone detection may be unreliable.